The present application relates to computer technology, and particularly to virtual memory management, such as by an operating system.
Applications, such as computer programs, executing on a computer, have many different modes of handling virtual storage. An application obtains and releases virtual storage via system calls, and relies on the computer to manage the virtual storage. Typically, an operating system of the computer manages allocation and freeing of the virtual storage. For example, the operating system manages an association of a virtual memory pages and corresponding real frames, the real frame being a memory space in storage of the computer. The operating system may also manage swapping the real frames in and out of the storage. When the virtual memory page is freed, if the pages are associated with real frames, the virtual to real association must be removed not only from the page table, but also from the Translation Lookaside Buffers (TLBs) associated with each active processor in the computer. The processor performing the invalidation must issue an instruction to broadcast the virtual address being invalidated to all other processors in the system. Such a broadcast is very disruptive to ongoing work and becomes even more disruptive as the number of processors increase.